// noinspection JSUnusedGlobalSymbols
Tool = {
	/**
	 * 空校验 null或""都返回true
	 */
	isEmpty: (obj) => {
		if((typeof obj === 'string')){
			return !obj || obj.replace(/\s+/g, '') === '';
		}else{
			return (!obj || JSON.stringify(obj) === '{}' || obj.length === 0);
		}
	},

	/**
	 * 非空校验
	 */
	isNotEmpty: (obj) => {
		return !Tool.isEmpty(obj);
	},

	/**
	 * 对象复制
	 * @param obj
	 */
	copy: (obj) => {
		if(Tool.isNotEmpty(obj)){
			return JSON.parse(JSON.stringify(obj));
		}
	},

	/**
	 * 使用递归将数组转为树形结构
	 * 父ID属性为parent
	 */
	array2Tree: (array, parentId) => {
		if(Tool.isEmpty(array)){
			return [];
		}

		const result = [];
		for(let i = 0; i < array.length; i++){
			const c = array[i];
			// console.log(Number(c.parent), Number(parentId));
			if(Number(c.parent) === Number(parentId)){
				result.push(c);

				// 递归查看当前节点对应的子节点
				const children = Tool.array2Tree(array, c.id);
				if(Tool.isNotEmpty(children)){
					c.children = children;
				}
			}
		}
		return result;
	},

	/**
	 * 随机生成[len]长度的[radix]进制数
	 * @param len
	 * @param radix 默认62
	 * @returns {string}
	 */
	uuid: (len, radix = 62) => {
		const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
		const uuid = [];
		radix = radix || chars.length;

		for(let i = 0; i < len; i++){
			uuid[i] = chars[0 | Math.random() * radix];
		}

		return uuid.join('');
	}
};
